1. Field of the Invention
This invention relates generally to a method and apparatus for error correction and, more particularly, to a method and apparatus suitable for faithfully and accurately reproducing data from each sector of a track on a disk-shaped recording medium, such as a magneto-optic disk.
2. Description of the Prior Art
There is already known a technique by which digital data is recorded on, and reproduced from, a disk-shaped record medium, such as an optical disk, a hard magnetic disk, or the like. In general, digital data is recorded and reproduced along with some sort of error-correcting parity that serves to detect and correct data errors that might possibly occur during recording or reproduction. In such cases, a block-completion type data format is usually employed in which an error-correcting parity is produced for a predetermined number of the data samples in the block.
In addition, magneto-optic disks are now being used as a record medium. These are so-called erasable discs in which a laser is used to alter the magnetization of a magnetic layer exhibiting perpendicular anisotropy, for example, as described in U.S. Pat. No. 4,610,009.
In the case where the data is intended for use in a computer, such data cannot be used at all unless it is correct and the user has faith in its accuracy. Thus, a parity code for checking error is also added to the data on a block unit basis to check whether errors occur in the data and thereby to improve the fidelity of the data.
FIG. 1 represents an example of such a data block, in which digital data is arranged in a memory in matrix form having m bytes in the row direction and n bytes in the column direction. A (k, m) code is produced for each element of m-byte data arranged in the row direction and k-m error detecting and correcting parities C.sub.1 are added to each of the data blocks in the row direction. Similarly, an (1, n) code is produced for each element of n-byte data arranged in the column direction and 1-n error detecting and correcting parities C.sub.2 are added to each of the data blocks in the column direction. The two error detecting and correcting parities, C.sub.1 and C.sub.2, form a product code.
In the product code represented in FIG. 1, there is introduced into the last row of the data block, an error-checking parity or error-detecting code (EDC) for a final check as to whether or not the data blocks contain errors. The error-checking parity EDC is produced by sequentially reading the data from the uppermost row to the lowermost row and along the row direction.
Assuming in the above product code that the data read/write direction is in the row direction, error correction is effected first for the data block on each row by the use of the parity C.sub.1 and next for the data block on each column by the use of the parity C.sub.2. Errors can be gradually reduced by subsequently repeating the error-correcting process, however, if the error correction is performed to the limit of the error-correcting ability, there is the fear that the fidelity of the data may be degraded and, also, the required processing time becomes increasingly longer. For this reason, it is usually the case that continued repetitions of the error-correcting operation are stopped after a suitable number, and error-checking of the block of data, for which the error correction has been carried out, is effected by use of the error-checking parity EDC.
In the error-correcting process, as well in the error-checking process after error correction, as mentioned above, the reproduced data is temporarily written into a buffer memory in the form of the matrix represented in FIG. 1. The written data is then sequentially read out from the buffer memory along the row direction, and the error correction is effected by the use of the parity C.sub.1. After this error correction is finished, the data is sequentially read out in the column direction, while effecting the error correction using the parity C.sub.2. It has been found that it is possible to correct almost all errors by repeating the error correction process using the two parities C.sub.1 and C.sub.2 .
When the error-correcting process is finished, the data is again sequentially read out from the buffer memory along the row direction to effect the error-checking process by using the error-checking parity EDC. Thus, it is necessary once again to read the data from the buffer memory for the error check after the error correction, so that the processing time is further prolonged. This is a disadvantage in this error-correction process, which needs to read data from a memory a large number of times.